package com.ruoyi.system.service;

import java.util.List;

import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.domain.TbAirplane;
import com.ruoyi.system.domain.TbDevice;

import javax.validation.constraints.NotNull;

/**
 * 飞机信息Service接口
 *
 * @author ruoyi
 * @date 2025-07-23
 */
public interface ITbAirplaneService {
    /**
     * 查询飞机信息
     *
     * @param id 飞机信息主键
     * @return 飞机信息
     */
    public TbAirplane selectTbAirplaneById(Long id);

    /**
     * 查询飞机信息列表
     *
     * @param tbAirplane 飞机信息
     * @return 飞机信息集合
     */
    public List<TbAirplane> selectTbAirplaneList(TbAirplane tbAirplane);

    /**
     * 新增飞机信息
     *
     * @param tbAirplane 飞机信息
     * @return 结果
     */
    public int insertTbAirplane(TbAirplane tbAirplane);

    /**
     * 修改飞机信息
     *
     * @param tbAirplane 飞机信息
     * @return 结果
     */
    public int updateTbAirplane(TbAirplane tbAirplane);

    /**
     * 批量删除飞机信息
     *
     * @param ids 需要删除的飞机信息主键集合
     * @return 结果
     */
    public int deleteTbAirplaneByIds(Long[] ids);

    /**
     * 删除飞机信息信息
     *
     * @param id 飞机信息主键
     * @return 结果
     */
    public int deleteTbAirplaneById(Long id);

    int updateStatusById(Long id,Integer status);

    List<TbAirplane> selectTbAirplaneLis(TbAirplane tbAirplane);


    R<List<TbDevice>> selectCanRelDev(   );


    int relDevice(String planeCode, Long deviceId);

    List<String> listAirpalneCode();

    TbAirplane selectTbAirplaneCode(@NotNull(message = "飞机编号不能为空") String planeCode);
}
